AWS CloudFormation으로 AWS Backup을 작성할 때 AWSBackupDefaultServiceRole 이 생성이 안될 때
소개
안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 AWS CloudFormation으로 AWS Backup을 작성한 후 백업을 실행할 권한이 없다는 오류가 발생하는 문제에 대해 소개하도록 하겠습니다.
문제 발생
Your backup job failed as AWS Backup does not have permission to describe resource arn:aws:ec2:region:AWS Account:instance/EC2 instance ID. Please review your IAM policies to ensure AWS Backup can protect your resources.
처음으로 AWS Backup을 AWS CloudFormation으로 작성하여 백업을 실행 했을 경우 위와 같은 권한이 없다는 에러가 발생하게 됩니다.
AWS 콘솔 화면에서 작성하게 되면 자동으로 AWS Backup의 Default IAM Role이 작성되지만 AWS CloudFormation으로 작성하게 되면 자동으로 생성되지 않게 됩니다.
해결 방법으로는 수동으로 AWSBackupDefaultServiceRole 을 작성하거나 CloudFormation 에 AWSBackupDefaultServiceRole를 작성하는 방법이 있습니다.
이번 블로그에서는 CloudFormation 에 AWSBackupDefaultServiceRole를 작성하여 해결하도록 하겠습니다.
AWSBackupDefaultServiceRole 작성이 포함된 CloudFormation 코드
AWSBackupDefaultServiceRole 사용 되는 정책
CloudFormation 코드
AWSTemplateFormatVersion: '2010-09-09' Description: "Backup CloudFormation Template" Parameters: SystemName: Description: "System name of each resource names." Type: String Default: "test" Cron: Description: "Time to do backup(cron) UTC" Type: String Default: cron(0 0 * * ? *) TagKey: Description: TagKey for backup Type: String Default: 'test' TagValue: Description: TagValue for backup Type: String Default: 'test' Resources: BackupVault: Type: "AWS::Backup::BackupVault" Properties: BackupVaultName: Fn::Sub: ${SystemName}-prd-backupvault BackupPlan: Type: AWS::Backup::BackupPlan Properties: BackupPlan: BackupPlanName: Fn::Sub: ${SystemName}-prd-plan BackupPlanRule: - RuleName: Fn::Sub: ${SystemName}-prd-rule TargetBackupVault: !Ref BackupVault ScheduleExpression: !Ref Cron CompletionWindowMinutes: 120 StartWindowMinutes: 60 Lifecycle: DeleteAfterDays: 30 BackupSelection: Type: AWS::Backup::BackupSelection Properties: BackupPlanId: !Ref BackupPlan BackupSelection: SelectionName: Fn::Sub: ${SystemName}-prd-backup-ec2-resources IamRoleArn: !GetAtt BackupIAMrole.Arn ListOfTags: - ConditionType: "STRINGEQUALS" ConditionKey: !Ref TagKey ConditionValue: !Ref TagValue BackupIAMrole: Type: AWS::IAM::Role Properties: RoleName: AWSBackupDefaultServiceRole AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: sts:AssumeRole Principal: Service: backup.amazonaws.com ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForBackup - arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores Path: "/service-role/"
마무리
이번 블로그에서는 AWS CloudFormation으로 AWS Backup을 작성할 때 AWSBackupDefaultServiceRole 이 생성 안 됐을 때 나타나는 에러에 대해 설명하였습니다.
저와 같은 문제가 발생하신 분들께 조금이나마 도움이 되었으면 좋겠습니다.